package net.hn.hnms.biz.api.safety.support.fegin;

import io.swagger.annotations.ApiOperation;
import net.hn.hnms.biz.api.feign.base.FeignClientsConfigurationCustom;
import net.hn.hnms.biz.api.feign.model.DataStateVo;
import net.hn.hnms.biz.api.safety.monitor.model.BaseSensorCoordDto;
import net.hn.hnms.biz.api.safety.support.domain.MineNowAlarmVo;
import net.hn.hnms.sys.common.core.constant.ServiceNameConstants;
import net.hn.hnms.sys.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(contextId = "RemoteSupportService", value = ServiceNameConstants.MANAGEMENT_SUPPORT_SERVICE
        ,fallback = RemoteSupportServiceFallback.class,configuration = FeignClientsConfigurationCustom.class
)
@Component
public interface RemoteSupportService {
    /**
     * 获取公司端煤矿实时报警数
     */
    @ApiOperation("获取公司端煤矿支架实时报警数")
    @GetMapping("/open/group/roof/nowAlarm")
    public List<MineNowAlarmVo> nowAlarm(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode") String companyCode);

    @GetMapping("cjdy/getMgylMaxTime")
    R<List<DataStateVo>> getMgylMaxTime(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);

    @GetMapping("cjdy/getDblcMaxTime")
    R<List<DataStateVo>> getDblcMaxTime(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);

    @GetMapping("cjdy/getZjzlMaxTime")
    R<List<DataStateVo>> getZjzlMaxTime(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);

    /**
     * 获取矿压监测（锚杆所.顶板.支架）BaseSensorTable表所有信息
     */
    @GetMapping("remoteCjdy/getKyjcBaseSensorTableAllList")
    List<BaseSensorCoordDto> getKyjcBaseSensorTableAllList(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);

    /**
     * 获取生产监控的支架数据BaseSensorTable表所有信息
     */
    @GetMapping("remoteCjdy/getProductionZjjcBaseSensorTableAllList")
    List<BaseSensorCoordDto> getProductionZjjcBaseSensorTableAllList(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);

    /**
     * 获取冲击地压钻孔应力BaseSensorTable表所有信息
     */
    @GetMapping("remoteCjdy/getZkylBaseSensorTableAllList")
    List<BaseSensorCoordDto> getZkylBaseSensorTableAllList(@RequestParam("mineCode") String mineCode, @RequestParam("companyCode")  String companyCode);
}
